ZSNES v1.51 Documentation

================================
    N a v i g a t i o n
================================

    * Index    [Index.txt]

    * Readme    [Readme.txt]
        1. Disclaimer
        2. Current Progress
        3. Extra Features
        4. System Requirements
        5. Installation
        6. Basic Usage
        7. Default Keys
        8. Save States
        9. Movies
        10. IPS Patching
        11. Cheat Codes
        12. Files

    * GUI    [GUI.txt]

    * Netplay    [Netplay.txt]

    * Advanced Usage    [Advanced.txt]

    * Games    [Games.txt]

    * FAQ    [FAQ.txt]

    - - - - - - - - - - - - - - - - - -

    * Getting Support    [Support.txt]

    * History    [History.txt]

    * About    [About.txt]

    * License    [License.txt]

    - - - - - - - - - - - - - - - - - -

    * NSRT Guide:    [http://zsnes-docs.sf.net/nsrt]

    * ZSNES Home Page:  [ZSNES.com]


================================================================================
~                                 R e a d m e
================================================================================

ZSNES is an open-source Super Nintendo Entertainment System emulator written in
x86 assembly, C, and C++. Bleeding with cutting edge SNES emulation, ZSNES is
easily comparable to other leading SNES emulators, such as Snes9x
[http://www.snes9x.com], SNEeSe [http://sneese.sourceforge.net], Super Sleuth
[http://users.tpg.com.au/advlink/spx/], and bsnes [http://byuu.org].

Special thanks to the Snes9x team for all of their help and also for the
excellent SNES emulator they have developed. We wish them the very best of luck!


............................................................
  1.                     Disclaimer
............................................................

The ZSNES Development Team, including all developers and contributors, is in no
way responsible for any damage caused by the use of this software. Please read
the license [License.txt] for more details.

Due to legal issues, the ZSNES Development Team can provide you neither with
ROMs nor links to them. In addition, ZSNES may not be distributed with ROM
images. However, as with many cases like this, Google [http://www.google.com]
is your friend.

There are still many bugs left in ZSNES, so don't expect it to run all your
favorite games. If ZSNES doesn't work for you, then don't use it. Use Snes9x,
SNEeSe, Super Sleuth, or bsnes instead! In fact, even if you use ZSNES, use
those emulators too!


............................................................
  2.                  Current Progress
............................................................

 - - - - - - - - - - - - - - - - -
  The following are implemented:
 - - - - - - - - - - - - - - - - -
    - Complete 65816 instruction set
    - SRAM support
    - LoROM and HiROM support
    - SlowROM and FastROM support
    - Full DMA support
    - HIRQ/VIRQ/NMI Interrupts
    - Support for several SNES file formats (SMC, SFC, SWC, FIG, MGD, MGH, UFO,
      BIN, GD3, GD7, DX2, USA, EUR, JAP, AUS, ST, BS, 048, 058, 078,), including
      split files (1, 2, 3; A, B, C)
    - Interleaved format support (except SuperFX games)
    - PAL/NTSC timing support

 - - - - - - - - - - - - -
  Graphics engines (PPUs)
 - - - - - - - - - - - - -

  The following are implemented in both graphics engines, all color modes:
    - Graphic modes 0,1,2,3,4,5,6,7
    - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    - 8x8 and 16x16 tiles
    - 32x32,64x32,32x64,64x64 tile modes
    - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    - Mode 7 rotating and scaling effects
    - BG priorities
    - Sprite priorities
    - Add/sub of back area
    - Mosaic effects

  About the old graphics engine:
    - Line engine
    - Missing lots of windowing and DMA effects
    - More accurate at drawing some things
    - 13-bit color rendering. (This is a compromise between color accuracy and
      speed. Not all transparencies will work correctly with this engine.)

  What's available in the old graphics engine when using an 8-bit color video
  mode:
    - Offset per tile mode (mode 2/vertical only)
    - High-res 512 horizontal resolution (missing in 16x16)
    - Single and dual windowing routines

  What's available in the old graphics engine when using a 16-bit color video
  mode:
    - Palette changing in the middle of a screen
    - Screen addition (full and half)
    - Screen subtraction (full)
    - Fixed color addition/subtraction
    - Window clipping for fixed color

  About the new graphics engine:
    - Tile engine
    - Nearly complete engine with a few bugs
    - Can draw mostly everything on the SNES
    - 15-bit coloring

  What's available in the new graphics engine when using an 8-bit color video
  mode:
    - Offset per tile mode (mode 2/vertical only, mode 4)
    - High res 512 resolution and 448/478 vertical resolution
    - Windowing effects
    - High resolution mode 7 (only in 640x480x256 video mode; active when all
      other video filters are disabled)

  What's available in the new graphics engine when using a 16-bit color video
  mode:
    - All of old graphics engine 16-bit
    - High resolution mode 7
    - High resolution 16x16 tiles for mode 5
    - Full 15-bit color transparencies for improved picture quality (MMX
      compatible CPUs only)

 - - - - - - - - - - - - - - - - - - -
  The following are present in sound:
 - - - - - - - - - - - - - - - - - - -
    - 16-bit digital stereo sound
    - SPC700 Sound CPU
    - DSP Sound Processor
          - Echo effects
          - FIR filter
          - ADSR volume effects
          - GAIN volume effects
          - Noise effects
          - Pitch modulation

 - - - - - - - - - - - - - - - - - - - - - - - - - -
  The following special input devices are emulated:
 - - - - - - - - - - - - - - - - - - - - - - - - - -
    - MultiTap (5-player support)
    - Super NES Mouse (missing some features, such as speed settings)
    - Super NES Super Scope
    - Konami Lethal Enforcer Gun
    - Automatic configuration via NSRT headers
      (See APIs and Utilities section [Readme.txt])

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  The following special cartridge processors are emulated, in whole or in part:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   | Special Chip  | Progress |
   ----------------|-----------
    C4             | 100%
    Nintendo DSP-1 | 100%
    Nintendo DSP-2 | 100%
    Nintendo DSP-3 |  80%
    Nintendo DSP-4 |  95%
    OBC-1          | 100%
    SA-1           |  90%
    S-DD1          | 100%
    Seta DSP 10    |  99%
    Seta DSP 11    |  80%
    SPC7110        | 100% except decompression
    S-RTC          |  95%
    SuperFX        |  90%

 - - - - - - - - - - - - - - - - - - - - - - -
  The following add-on devices are emulated:
 - - - - - - - - - - - - - - - - - - - - - - -
   | Special Cartridge / Add-On  | Progress |
   ------------------------------|-----------
    Broadcast Satellaview (BS-X) |  50%
    Nintendo Super System        | 100% except the menus
    Same Game, SD Gundam G-Next  | 100%
    Sufami Turbo                 |  95%

 - - - - - - - - - - - - - - - - - - -
  The following features are missing:
 - - - - - - - - - - - - - - - - - - -
    - Pseudo 512 SNES horizontal resolution (no games are known to use this)
    - Some modes in offset per tile mode
    - Some direct color modes (no games are known to use this)
    - Seta RISC chip
    - True SPC7110 decompression
    - Super GameBoy emulation

 - - - - - - - - - - - - - - - - - - - - - -
  What will not run (or not play properly):
 - - - - - - - - - - - - - - - - - - - - - -
    Please read our statement on game compatibility [Games.txt].

    - Some SuperFX games (regardless of interleave status)
    - Interleaved SuperFX games (deinterleave them with NSRT
      [http://nsrt.edgeemu.com])
    - Some Broadcast Satellaview (BS-X) games
    - Games with unknown co-processors
    - Games that don't have a valid header
    - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    - Games that require special timing


............................................................
  3.                   Extra Features
............................................................

    - Support for save states, including rewinding
    - Extensive movie recording and dumping features
    - Many emulation speed options, including automatic frame skipping to
      compensate for slower machines
    - Full cheat code support (including Game Genie, Pro Action Replay, and
      GoldFinger)
    - Automatic IPS soft-patching (including up to 11 sequential patches)

    - Custom-built GUI with many time-saving features
    - Support for loading Zip, gZip, and JMA-compressed ROMs
    - Randomized ROM loading
    - Support for input from keyboards, joysticks, and gamepads,
      as well as a key combination editor
    - Many video output options, including graphics-enhancing filters
    - Highly configurable sound output options

    - Netplay (currently disabled)

    - User-editable configuration files
    - Debugger
    - Accepts command-line arguments


............................................................
  4.                System Requirements
............................................................

 - - - - - - - - - - - - - - -
  Supported operating systems
 - - - - - - - - - - - - - - -

  Official Ports
    - Win port: Microsoft Windows 95/98/ME/2000/XP/2003/Vista
    - SDL port: Linux, BSD, Mac OS X, or Xbox running Linux
    - DOS port: Microsoft DOS (may work on other non-MS DOSes)

  Un-Official Ports
    - ZsnexBox: Microsoft Xbox (native)

      ZSNES Board thread about the Xbox port:
      [http://board.zsnes.com/phpBB2/viewtopic.php?t=6933]

 - - - - - - - - - -
  CPU requirements
 - - - - - - - - - -

  ZSNES absolutely requires a 100% x86-compatible processor. You probably
  already meet this requirement. Most consumer-grade processors sold by Intel
  and AMD use the x86 instruction set.

  Because much of ZSNES' source code is written in x86 assembly, it will only
  run on processors that are 100% x86 compatible. "Ports" to other architectures
  are impossible; we recommend Snes9x [http://www.snes9x.com] as the SNES
  emulator of choice for portability.

  Playing a special chip game will significantly increase CPU usage. For these
  games, you may require a processor faster than those listed below.

 - - - - - - - - - - - - -
  Free space requirements
 - - - - - - - - - - - - -

  The program files alone require about 1MB. The amount of disk space required
  for other files varies greatly. For example, uncompressed ROMs (not included!)
  require 256KB-6144KB each. Save states typically require about 270KB each;
  however, this can increase up to an additional 200KB for special chip games.

 - - - - - -
  Win Port
 - - - - - -

  OS: Windows 95/98/ME
    - CPU: Pentium II (or equivalent) 233MHz (500MHz recommended)
    - RAM: 32MB (64MB recommended)
  OS: Windows 2000/XP/2003/Vista
    - CPU: Pentium II (or equivalent) 266MHz (500MHz recommended)
    - RAM: 64MB of RAM (128MB recommended)
  API: DirectX v8.0a or later must be installed
  Video: any video card that supports DirectDraw (acceleration recommended)
  Sound: any sound card that supports DirectSound (acceleration recommended)

  System Requirements for Microsoft Windows Operating Systems:
    [http://support.microsoft.com/kb/304297/]

  System Requirements for Windows XP Operating Systems:
    [http://support.microsoft.com/kb/314865/]

 - - - - - -
  SDL Port
 - - - - - -

  OS: Linux, BSD, or Mac OS X
  CPU: 266MHz (500MHz recommended, especially if using X)
  RAM: 32MB (64MB recommended; more if SDL is compiled to use X)
  API: SDL v1.20 or later
  Video: almost any video card will work (hardware OpenGL support and
    acceleration highly recommended)
  Sound: any sound card supported by SDL (using ALSA or OSS)

 - - - - - -
  DOS Port
 - - - - - -

  OS: Microsoft DOS (some non-MS DOSes may work)
  CPU: Pentium II (or equivalent) 233MHz
  RAM: 32MB (minimum of 17MB free, required for loading 48mbit ROMs)
  Video: VGA card
    - For 16-bit color and therefore proper support of transparencies, an SVGA
      card with VESA 2 and Linear Frame Buffer support is required.
    - You may be able to use Scitech Display Doctor to enable VESA 2 support on
      some cards that don't already support it.
  Sound: Sound Blaster Pro or 100% compatible (SB16 or 100% compatible
    recommended)

  These system requirements assume you are running the DOS port under pure DOS.
  If you are using the DOS port from within Windows, the CPU and RAM
  requirements will be the same as for the Win port.


............................................................
  5.                    Installation
............................................................

- - - - - - - - - -
  Win / DOS Ports
- - - - - - - - - -

Installation:

    1. Download the latest version of ZSNES from [ZSNES.com].
       The file you download is an archive containing the ZSNES binary file and
       documentation.
    2. Extract the contents of the archive into a new folder on your hard drive.
       Do not simply overwrite an older version of ZSNES.
    3. You can now run ZSNES by executing the ZSNES binary, named zsnesw.exe
       (Windows) or zsnes.exe (DOS). ZSNES is not packaged with an installer, so
       there will be no entry in the Windows Start Menu.

Note: In Windows, you can create a shortcut to ZSNES to make it easier to open
  the program. Right-click on the zsnesw.exe icon to bring up the context menu,
  and left-click "Create Shortcut". A shortcut to the executable file will
  appear in the folder. You can now move the newly-created shortcut to your
  Desktop or Start Menu. Opening the shortcut will run ZSNES from its original
  location.


Re-Installation / Reset to default settings:

If you find that you are experiencing a number of unexplained errors in ZSNES,
or if you wish to reset all settings back to their defaults, simply delete the
configuration files that were generated by ZSNES the first time you ran the
program. See the Configuration Files section [Advanced.txt] for details.


Un-Installation:

If you wish to uninstall ZSNES, simply delete the entire folder (and thus, all
files contained within) into which you installed ZSNES (as described in Step 2
of Installation, above).

-or-

If you have since put additional files (such as ROMs) into your ZSNES install
folder, and do not wish to delete or move them, you will have to delete the
individual ZSNES files. Please refer to the Files section [Readme.txt] for
information on individual files and file types related to ZSNES. You will also
need to delete the docs folder.

Note: ZSNES does not use the Windows registry*, nor does it generate "hidden"
  configuration files all over your system.
  *Description of the Windows registry: [http://support.microsoft.com/kb/256986]


- - - - - - - - - - - - - - - - - -
 SDL Port / Compiling from source
- - - - - - - - - - - - - - - - - -

    * Download the latest source release of ZSNES from [ZSNES.com].
    * After unpacking, navigate to the src directory and run the following
      commands:
          ./configure --enable-release
          make
      And as root:
          make install
    * Other, more detailed instructions are provided in the docs/install.txt
      file.


Un-Installation:

If you wish to uninstall ZSNES, you can run "make uninstall" as root if you
still have your Makefile.

Otherwise, you will need to navigate to /usr/local/bin and delete zsnes. Then
navigate to /usr/local/man/man1 and delete zsnes.1. Or just delete the man1
directory if you have nothing else in it.

You will need root access to perform the above actions.

You will also need to delete "~/.zsnes" or "~/Library/Application Support/ZSNES"
in Mac OS X. Do note that various files are saved in here by default (such as
game saves); be sure to back them up if you want to keep them.


............................................................
  6.                    Basic Usage
............................................................

  1. Install ZSNES (see above).
  2. Run ZSNES.
       * If you're using Windows, double-click on the executable file.
       * If you're using DOS, navigate to the ZSNES installation folder and type
         zsnes.exe at the command line.
  3. Configure the input settings (Config Menu -> Input) as desired, or use the
     default settings.
  4. Configure the video settings (Config Menu -> Video) as desired, or use the
     default settings.
  5. Configure path settings (Config Menu -> Paths) if you don't want all the
     automatically generated files going into the same directories as your ROMs.
  6. Load a game (Game Menu -> Load) and start playing.
  7. When you are ready to stop playing, you have a number of choices to save
     your game.
       * If your game has its own native save function, just use it.
       * If your game does not have a save function, or you are at a point in
         the game where you can't save, you can create a save state. Do this by
         pressing F2.
  8. After you save your game:
       * You can load a new game using the same steps as above, or
       * Exit the emulator by going to Game Menu -> Quit.
  9. When you are ready to return to a previously saved game, just re-load that
     game.
       * Load an in-game save in the normal way.
       * If you saved a state, you can load that state by pressing F4.

This section only covers very basic usage. Please read the entire documentation
for more information.


............................................................
  7.                    Default Keys
............................................................

- - - - - - - - - - - - - - - -
 . . . . Game . . Keys . . . .
- - - - - - - - - - - - - - - -

You can change the default keys for the standard SNES controller under
Config->Input [GUI.txt].

|SNES Button|    |Player 1 Key|   |Player 2 Key|
- - - - - - - - - - - - - - - - - - - - - - - - -
  D-Pad Up         Arrow Up             J
  D-Pad Down       Arrow Down           M
  D-Pad Left       Arrow Left           N
  D-Pad Right      Arrow Right          ,
  Start            Return/Enter     Left Ctrl
  Select           Right Shift      Left Alt
  A                    X            Home
  B                    Z            End
  X                    S            Insert
  Y                    A            Delete
  L (Left Shoulder)    D            Page Up
  R (Right Shoulder)   C            Page Down


You can change the default keys for special input devices under
Config->Devices. [GUI.txt].

The special input devices just use input from your mouse for movement and
aiming.

|Super Scope Button  | Computer/Mouse Button|
- - - - - - - - - - -|- - - - - - - - - - - -
  Fire               |  Left mouse button
  Cursor Mode Button |  Right mouse button
  Toggle Auto-fire   |  =
  Pause              |  Backspace


- - - - - - - - - - - - - - - - -
 . . . Emulator . . Keys . . . .
- - - - - - - - - - - - - - - - -

[Where to Customize]
|Key|    |Function|
= = = = = = = = = =
[Cannot be changed]
 Esc    When a game is loaded, toggle the GUI
          (pauses emulation while GUI visible).
 F1     Open the F1 Quick Menu.
- - - - - - - - - -
[Config->Saves]
 F2     Save a state to current slot.
 F3     Open the save state slot chooser.
 F4     Load a save state from the current slot.
- - - - - - - - - -
[Misc->Misc Keys]
 F5 <--> F12  Toggle sound channels 1 through 8, respectively
 1, 2, 3, 4   Toggle background layers 1, 2, 3, and 4, respectively
 5            Toggle sprite/object layer
 6            Panic Key: Reset all switches to default (enable Offset Mode,
               Windowing, all background layers, sprite/object layer, and sound
               channels; disable Add-on Devices; reset Emulation Speed Throttle)
 8            Toggle New Graphics Engine
 9            Toggle Windowing
 0            Toggle Offset Mode
 T            While using Netplay, press to open the Chat window
- - - - - - - - - -
[Config->Speed]
 ~      Fast Forward
 P      Pause Emulation

Note: Besides these default keys, there are many other keys that you can
  configure in the GUI.


............................................................
  8.                    Save States
............................................................

** Warning: If you care about your progress in a game, remember to use
     in-game saves regularly! Do not rely solely on save states! **

When you "save a state," ZSNES creates a file that contains the values of all
the variables that change while ZSNES is emulating a game. These values are
specific to the exact moment that you saved the state. You can then load a save
state at a later time, thus returning ZSNES to the exact point in the game when
you saved the state originally. This allows you to save your progress at a point
that might not normally be possible with in-game saves, or in games that don't
have in-game saves at all.

Save states are typically not compatible between emulators, and sometimes not
even between different versions of the same emulator, often due to internal core
changes. In fact, it should be noted that save states created prior to v0.600 of
ZSNES will not work in current versions.

To remedy this problem, first load the state in any version of ZSNES from v0.600
to v1.42. Then, immediately after loading, save another state. The new state you
just created should (hopefully) load correctly in ZSNES v1.50 and higher.

Since ZSNES does not support save states created by any other SNES emulator,
you can instead use the emulator-independent SRAM (.srm) data to transfer game
progress from one emulator to another.

Each ZSNES save state is approximately 270KB in size. Special chip games may
require an additional 200KB, however.

- - - - - - - - - - - - -
 How to Use Save States
- - - - - - - - - - - - -

You can create and load save states using the GUI [GUI.txt].

It's much easier to just use the default quick keys for these features. Press F2
to save, F4 to load, and F3 to open the save state slot chooser (with graphical
preview). However, if you don't like that method, many other save and load
techniques are available.

Configure general save behavior under Config->Saves. Configure save paths under
Config->Paths.


............................................................
  9.                       Movies
............................................................

Warning: Playing back a previously recorded movie will overwrite any SRAM data
  for the current game with the SRAM data contained in the ZMV file. This means
  you should enable Do Not Save SRAM [GUI.txt] when playing around with movies!!

Note that these new features will not work with movies recorded in the old ZMV
format (movies made prior to ZSNES v1.50).

For descriptions of the Movie Options dialog, please refer to the GUI page
[GUI.txt].

- - - - - - - -
 About Movies
- - - - - - - -

The ZSNES movie format (ZMV) has been completely rewritten and is now better and
more feature-rich than before, with the most capabilities yet implemented in an
emulator. Three of the most notable new features are re-recording, dumping ZMVs
to AVI, and movie subtitles, described below.

A movie file consists of a save state, SRAM data (when applicable), and the
recorded controller data, as well as any chapters (states) that have been
inserted. It also keeps track of a few other things which are negligible with
regard to the overall filesize. Movie files should record at less than
1KB/minute (60KB/hour).

ZSNES should be able to record most actions you can do with a real SNES,
including resetting. During playback, the game will reset just as you did during
recording.

- - - - - - -
 Limitations
- - - - - - -

You cannot record games that use the Konami Justifier special input device.
Lethal Enforcers is the only game known to require this device.

You cannot record games while using Netplay.

You should be able to record ZSNES movies for all game types; however, ZMVs are
heavily dependant on save states, so any games that exhibit problems while using
save states will also exhibit problems when recording and playing movies.

For best results, you should play back movies with the same version of ZSNES
that was used to record them. Otherwise, keypresses may become desynchronized
from the emulation playback.

- - - - - - - -
 Re-recording
- - - - - - - -

You do not have to do everything perfectly the first time you record a movie.
ZSNES allows you to re-record parts of a movie, inserting the newly recorded
parts seamlessly into the previously recorded parts. You can accomplish this
in a number of ways:

  * While playing back a movie, start recording again.
  * Use save states while recording movies. Loading the states will allow you to
    re-record.
  * You can use the rewind key to go back in movies. The rewind key can be
    configured under the Config->Saves menu.

- - - - - -
 Chapters
- - - - - -

You can insert chapters into your movies, to which you can seek during movie
playback.

You are limited to 65535 (2^16 - 1) chapters created during recording, in
addition to 65535 (2^16 - 1) created during playback.

- - - - - -
 Subtitles
- - - - - -

Subtitles allow you to create a short message that will be visible on-screen
during playback of a movie.

  1. Create an empty file in your save directory (or wherever your movies are
     saved).
  2. The subtitle file must be named in the following manner:
       - Subtitle file name = ZMV file name = ROM file name.
         (Example: smw.sfc (Super Mario World ROM), smw.zmv, smw.sub).
       - If you are using movie slot 0, file extension = .sub.
       - If you are using movie slot 1 through 9, change the last letter of the
         extension to match the movie slot you are using.
         (Example: slot 1 = .su1, slot 5 = .su5, slot 9 = .su9).
  3. For each subtitle you want in the movie, add a new line to the subtitle
     file, with the following information:
       - Start Frame:Frame Duration:Message
       - For example: "10:100:Beating the Last Boss" without the quotes. In this
         example, the message "Beating the Last Boss" will appear in the tenth
         frame and stay visible for 100 frames (thus, until the 110th frame).
       - ZSNES can display only one subtitle at a time. So make sure that the
         start frame for the next subtitle is not during the duration time of
         the previous subtitle. You must also list your subtitles sequentially
         for all of them to be played (they cannot be out of order).
       - ZSNES can display a maximum of 34 characters (of a subtitle message)
         across the width of the screen.
  4. Now save your new subtitle file. Open ZSNES, play a movie, and you should
     see your subtitles appear!

- - - - - - - -
 Movie Dumping
- - - - - - - -

See the Movie Dumping section of the Advanced Usage page [Advanced.txt] for more
information.


............................................................
  10.                   IPS Patching
............................................................

IPS ("International Patching System") patches are files that are applied to an
original ROM, which change the programming of the ROM in some way. They are
primarily used to translate ROMs into another language; however, they can be
used for a variety of purposes. Visit [Romhacking.net] for more information
about translations and ROM hacks.

ZSNES has the ability to automatically "soft-patch" a ROM. This means that after
ZSNES loads a ROM into its memory, it will apply the IPS patch to the in-memory
ROM data, *not* the ROM file on your hard disk. This eliminates the need to keep
two copies of a ROM: the original, and the patched.

- - - - - - - - - - - - - - - - - - - -
 Applying a single IPS file to a ROM:
- - - - - - - - - - - - - - - - - - - -

    1. Make sure Enable Auto-Patch is checked in Config->Options.
    2. The IPS file must be either in your Saves directory or in the same
       directory as the ROM.
    3. The IPS file and the ROM file must have matching filenames. For example,
       SD3.sfc and SD3.ips. If your ROM file is compressed, the IPS file must
       match the *compressed* filename. For example, if you have the file
       SD3.sfc compressed inside the file Seiken Densetsu 3 (J).zip, the IPS
       file must be named Seiken Densetsu 3 (J).ips.
    4. If you meet the above three conditions, just load your ROM file as
       normal, and ZSNES should automatically patch the IPS file to the
       in-memory ROM. Remember, your original ROM file will *not* be changed.
    5. If you have done everything outlined in the steps above, and your game
       does not appear to be working, refer to the related FAQ [FAQ.txt].

- - - - - - - - - - - - - - - - - - - -
 Applying multiple IPS files to a ROM:
- - - - - - - - - - - - - - - - - - - -

ZSNES has the ability to apply up to eleven separate IPS files to the same ROM
file. You must give each IPS file a specific extension to tell ZSNES in what
order to apply them. Aside from changing the extension of the IPS files, just
follow the directions above.

| IPS file  |  Applied  |
| extension |   When?   |
- - - - - - - - - - - - -
     ips    |  First
     ip0    |  Second
     ip1    |  Third
     ip2    |  Fourth
     ip3    |  Fifth
     ip4    |  Sixth
     ip5    |  Seventh
     ip6    |  Eighth
     ip7    |  Ninth
     ip8    |  Tenth
     ip9    |  Eleventh

ZSNES will *not* apply non-sequentially extensioned IPS files. This means that
if you have three IPS files, named patch.ips, patch.ip0, and patch.ip6, ZSNES
will only apply the first two.

Please remember that the *order* in which you apply the IPS patches may be
important. Applying the patches in the wrong order may result in strange bugs,
or even an unplayable game. Please refer to the documentation that accompanied
your IPS file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Alternative method of applying IPS files to Compressed ROMs:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The simplest method of applying an IPS file to a compressed ROM is to simply
place the IPS file in the same archive as the ROM. The filename of the IPS file
does not have to match the compressed or uncompressed filename of the ROM.
Do *not* add more than one IPS file of a given extension to an archive. Results
can be unpredictable as to which of the same-extension IPS files will be applied
to the ROM.

If your ROM is compressed, ZSNES will first look for IPS files inside the
archive. If it finds any, it will only load IPS files from inside the archive,
and will not look anywhere else. Otherwise, ZSNES looks in the Saves directory
and the same directory as the ROM.


............................................................
  11.                   Cheat Codes
............................................................

Currently, ZSNES supports Game Genie, Pro Action Replay, and GoldFinger codes.

- - - - - - - - - - - - -
 How to use cheat codes:
- - - - - - - - - - - - -

    1. Load the ROM to which you want to apply cheats.
    2. Press ESC to toggle the GUI. Open the Add Code dialog from the Cheat
       Menu. You can enter up to 255 codes for each game.
    3. After adding your codes, press ESC until you are back to your game.

** To use a multi-line cheat code, just enter each line as a separate code! **

- - - - - - - - - - - - -
 How to use .cht files:
- - - - - - - - - - - - -

Place the .cht file into the same directory as the ROM, or into your Saves
folder. The .cht file must be named according to the normal naming rules (see
the Files section [Readme.txt] for details).

- - - - - - - - - - - - - - -
 Troubleshooting Cheat Codes
- - - - - - - - - - - - - - -

  * Try using the Fix button in the Browse Cheats dialog [GUI.txt].
  * Some cheat codes are meant to be used with different versions of the same
    game. If a cheat code doesn't work and there is one for both Game Genie and
    Pro Action Replay, try them both.
  * Remember that Game Genie codes require the - (dashes).
  * Try resetting the game. Any code for a game that mentions a term similar to
    "Start with" means that the game must be reset in order to take effect.
  * If you are having a hard time with comparative searches, make sure to delete
    the tmpchtsr.___ file in your ZSNES directory.


............................................................
  12.                      Files
............................................................

This section attempts to explain the various files that are created, loaded, or
used by ZSNES.

Most of the data files that are specific to individual ROMs are named in the
following manner:
    - The filename of the data file is the same as the filename of the ROM from
      which it was created.
    - The file extension of the data file changes, depending on the following:
        * If there are no "slots" for the data file, then it is just the
          normal file extension (srm, bmp, png, raw, cht, cmb, cfg, txt).
        * If you are using slot 0, then it is just the normal file extension
          (zst, zmv, sub, ips, spc).
        * If you are using slots 1-9, then the last letter of the file
          extension changes to match the slot number (zs1-zs9).
        * If you are using slots 10-99, then the last two letters of the file
          extension change to match the slot number (z10-z99).

[Where Created?]
|File Name| |File Extension| |File Type Name|
     |Description|
= = = = = = = = = = = = = = = = = = = = = = =
[Wherever you put them.]

  Whatever you want, or have them    smc, sfc, swc, ...    ROM (Game)
  automatically named by NSRT.
      These are common extensions for ROMs, which are computer files of the game
      data on real SNES cartridges. Read the full list of supported ROM file
      extensions in the Current Progress section [Readme.txt].

- - - - - - - - - - - - - - - - - - - - - - -
[Saves folder]

  romname     srm               Static RAM
      This is the *in-game* save file. It is automatically generated by ZSNES
      when you use the in-game save function. Some games use Static RAM as
      working RAM rather than to save a game. This format *should* be compatible
      among all emulators.

  romname     zst, zs1-zs9,     ZSNES Save State
               z10-z99, zss
      See the Save States section for more information [Readme.txt].

  romname     zmv, zm1-zm9      ZSNES Movie
      See the Movies section for more information [Readme.txt].

  romname     mzt, mz1-mz9      ZSNES Movie States
      Directories which contain the various save state data for that particular
      movie. See the Movies section for more information [Readme.txt].

  romname     sub, su1-su9      ZSNES Subtitle
      See the Subtitles sub-section of the Movies section for more information
      [Readme.txt].

  romname     cht               Cheat Data
      This file contains cheat codes that you entered using the Cheat Code
      Editor [GUI.txt]. These files are generally compatible between different
      versions of the same emulator, but not necessarily between different
      emulators.

  romname     cmb               Key Combination Data
      These files contain key combination data, created when you use the Key
      Combination Editor [GUI.txt].

  romname     inp               ZSNES Input
      These files contain input configuration for the specific game.

- - - - - - - - - - - - - - - - - - - - - - -
[Saves folder, Same folder as ROM]

  romname     ips, ip0-ip9      International Patching System
      See the IPS Patching section for more information [Readme.txt].

- - - - - - - - - - - - - - - - - - - - - - -
[Snapshots folder]

  romname_*****    bmp, png     Images
    /img*****
      These are snapshots of the game screen, created by ZSNES when you use the
      F1 Menu [GUI.txt]. The file name is appended by a number, up to 99999.

- - - - - - - - - - - - - - - - - - - - - - -
[SPCs folder]

  romname     spc, sp1-sp9,     SPC Sound
               s10-s99
      These files are created by ZSNES when you dump the SPC data of the game
      you are playing by using the F1 Menu [GUI.txt]. Note: In Windows, the .spc
      extension is sometimes used for PKCS Certificates.

  sounddmp    raw               Sound Buffer Dump
      This is a dump of sound buffer data, created when you use the appropriate
      F1 Menu option [GUI.txt].

- - - - - - - - - - - - - - - - - - - - - - -
[ZSNES folder (Win/DOS)  /  "~/.zsnes" (SDL)  /
 "~/Library/Application Support/ZSNES" (SDL - Mac OS X)]

  zsnes/zsnesw    exe (Win/DOS)   ZSNES executable
      This is the main ZSNES executable binary file. "ZSNES Folder" means the
      location of this executable.

  zsnes/zsnesw    cfg           ZSNES Configuration File
    /zsnesl
      User-editable configuration file where you can set almost any option in
      ZSNES [Advanced.txt].

  zmovie      cfg               ZSNES Movie Configuration File
      User-editable configuration file where you can change advanced movie
      dumping features [Advanced.txt].

  zinput      cfg               ZSNES Input Configuration File
      User-editable configuration file where you can change settings for
      controllers and extra SNES devices. This is the same as the files with the
      .inp extension, but is used globally.

  zfont       txt               ZSNES Font Configuration File
      This is where the appearance of text in the ZSNES GUI is configured
      [Advanced.txt].

  rominfo     txt               ROM Information
      This contains information about the ROM you most recently ran. You can
      configure this behavior under Config->Options.

  data        cmb               Key Combination Data
      This file contains key combination data, created when you use the Key
      Combination Editor for an unspecific game.


. . . . . . . . . . . . . . . .
This documentation is best viewed in a fixed-width font such as "Courier New".

Copyright (C) ZSNES Team & ZSNES Documentation Team [License.txt]
